<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

// @TODO: Get results only where they are set to active

class Ketquahoctap_model extends CI_Model
{
	protected $_table;	    
	/**
	 * Constructor
	 *
	 * @access	public
	 */
	function __construct()
	{
		parent::__construct();
		$this->load->helper('date');
	}
	
	function get_id_student($mahv)
	{
		$this->db->select('hocvien.id as getidhv');
		$this->db->from('hocvien');
		$this->db->where('mahv',$mahv);
		$query = $this->db->get();
		return $query->row();
	}
	
	function get_student_info($idhv)
	{
		$this->db->select('hocvien.id,hocvien.tenhv,hocvien.mahv, hocvien.ngaysinh, hocvien.nguyenquan, lophoc.id as lopid, lophoc.malop, lophoc.tenlop, lophoc.note, lophoc.nambatdau, lophoc.namketthuc');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc', 'hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc', 'lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien.id',$idhv);
		$query = $this->db->get();
		$return = array();
		$return = $query->result_array(); 
		return $return[0];
	}
	
	function get_subjects_by_class($idlop, $idhv)
	{
		$this->db->select('monhoc.tenmon, monhoc.lythuyet,  monhoc.thuchanh, monhoc.sotinchi, bangdiem.diemtrungbinh, bangdiem.id_hv, bangdiem.id_mon');
		$this->db->from('monhoc', 'bangdiem');
		$this->db->join('bangdiem','bangdiem.id_mon = monhoc.id');
		$this->db->where('bangdiem.id_hv',$idhv);
		$this->db->where('bangdiem.id_lop',$idlop);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	function get_classes_by_student($idhv)
	{
		$this->db->select('lophoc.id, lophoc.malop, lophoc.tenlop');
		$this->db->from('lophoc', 'hocvien_lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idlop = lophoc.id');
		$this->db->where('hocvien_lophoc.idhv',$idhv);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	function aget_subjects_by_class($idlop, $idhv)
	{
		$this->db->select('monhoc.tenmon, monhoc.sotinchi');
		$this->db->from('monhoc', 'lophoc_monhoc','lophoc');
		$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = monhoc.id');
		$this->db->join('lophoc','lophoc.id = lophoc_monhoc.id_lop');
		$this->db->where('lophoc_monhoc.id_lop',$idlop);
		$this->db->where('bangdiem.id_hv',$idhv);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	// get all list mon hoc from db
	function get_all_bangdiem($limit, $start)
	{
		$this->db->select('id, mamon, tenmon, sotinchi, id_gv, lythuyet,thuchanh, status');
		$this->db->from('monhoc');
		$this->db->limit($limit, $start);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	
	
	public function join3($idlop, $idmon)
	{
		$this->db->select('bangdiem.id_mon, bangdiem.id_lop, bangdiem.id_hv, chitietdiem.diemso');
		$this->db->from('bangdiem', 'chitietdiem', 'bangloaidiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->join('bangloaidiem','bangloaidiem.id = chitietdiem.idloaidiem');
		$this->db->where('bangdiem.id_lop',$idlop);
		$this->db->where('bangdiem.id_mon',$idmon);
		$query = $this->db->get();
		return $query->result_array(); 
	}
	
	function get_chitietdiemdanhap($idlop, $idmon)
	{
		$this->db->select('bangdiem.id_mon, bangdiem.id_lop, bangdiem.id_hv, chitietdiem.diemso, chitietdiem.id, chitietdiem.idloaddiem');
		$this->db->from('bangdiem', 'chitietdiem', 'bangloaidiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->join('bangloaidiem','bangloaidiem.id = chitietdiem.idloaidiem');
		$this->db->where('bangdiem.id_lop',$idlop);
		$this->db->where('bangdiem.id_mon',$idmon);
		$this->db->group_by();
		$query = $this->db->get();
		return $query->result_array();
	}
	
	/*
	 * Lấy tất cả loại điểm theo môn học dựa trên số tín chỉ của từng môn)
	 */
	function ajaxget_loaidiem($id_mon,$id_lop)
	{
		$data_sotinchi = $this->get_sotinchi_monhoc($id_mon);
		$sotinchi = $data_sotinchi->sotinchi;
		$solankiemtra = round($sotinchi/15);// số lần kiểm tra tương ứng 1->9 lần, 15 chỉ 1 lần
		
		$solandakiemtra = $this->get_solandakiemtra($id_mon,$id_lop);
		//if($solandakiemtra =='')
		//{
			//$solandakiemtra = 0;
		//}
		$lophocs = array();
		$lophocs[0]['solandakt'] = (int) $solandakiemtra;
		$lophocs[0]['solankt'] = $solankiemtra;
	
		// Khởi tạo Json cho so lan kiem tra
		$j =1;
		for($i=1;$i<$solankiemtra+1;$i++)
		{
			$item['id'] = $i;
			$item['tenloaidiem'] = 'Kiểm tra lần thứ '.$i;
			$item['type']		=	1;
			$lophocs[$i] = $item;
			$j++;
		}
		// Khoi tạo Json cho bai thi
		$item['id'] = $j;
		$item['tenloaidiem'] = 'Điểm thi ';
		$item['type']		=	2;
		$lophocs[$j] = $item;
		
		return $lophocs;
		/*
		if($query->result()){
			
			foreach ($rs1 as $city) {
				$item['id'] = $city->id;
				$item['tenloaidiem'] = $city->tenloaidiem;
				$lophocs[$item['id']] = $item;
			}
			
			foreach ($rs2 as $city) {
				$item['id'] = $city->id;
				$item['tenloaidiem'] = $city->tenloaidiem;
				$lophocs[$item['id']] = $item;
				
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
		*/
	}
	
	function get_solandakiemtra($id_mon,$id_lop)
	{
		$this->db->select_max('chitietdiem.solandakiemtra');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_lop',$id_lop);
		$this->db->where('bangdiem.id_mon',$id_mon);
		$query = $this->db->get();
		 $rs = $query->row();
		 return $rs->solandakiemtra;
	}
	
	function get_students_by_class($lopid)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc','lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien_lophoc.idlop',$lopid);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	
	function get_mark_of_students_by_class_subject_solandaktra($id, $mon_id, $lop_id, $type)
	{
		$this->db->select('hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh, chitietdiem.diemso, chitietdiem.id');
		$this->db->from('hocvien','bangdiem','chitietdiem');
		$this->db->join('bangdiem','bangdiem.id_hv = hocvien.id');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('chitietdiem.type',$type);
		$this->db->where('chitietdiem.solandakiemtra',$id);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	// sửa chi tiết điểm theo môn và số lần kiểm tra hoặc điểm thi
	function edit_chitietdiem($results)
	{
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$data = array(
					'diemso'	=>	$diemso,
					
			);
			
			$this->db->where('id',$result);
			$this->db->set($data);
			$this->db->update('chitietdiem');
		}
		
		
	}
	
	//Kiểm tra xem môn học của lớp nào đó được nhập vào bảng điểm lần nào hay chưa, 
	//nếu có rồi thì lấy id bảng điểm add vào chi tiết điểm,
	//nếu chưa có thì thêm mới vào rồi lấy idbangdiem gán sang chitietdiem
	public function check_mon_lop_from_bangdiem($mon_id, $lop_id, $id_hv)
	{
		//$alias = strtolower(auto_alias($this->input->post('alias')));
		$query =  "(
		SELECT id
		FROM bangdiem WHERE id_mon ='$mon_id' AND id_lop = '$lop_id' AND id_hv='$id_hv' )";
		$result = $this->db->query($query);
		if($result->num_rows() >= 1)
		{
			$data = $result->row();
			return $data->id;
		}
		else
		{
			return 0;
		}
	}
	
	// thêm vào bảng chi tiết điểm
	function add_chitietdiem($mon_id, $lop_id, $id, $type, $results)
	{
		
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$bangdiemid = $this->add_bangdiem($mon_id,$result,$lop_id);
			$data = array(
				'idbangdiem' => $bangdiemid,
				'solandakiemtra' => $id,
				'diemso' => $diemso,
				'type' => $type,
			);
			$this->db->set($data);
			$this->db->insert('chitietdiem');
			
			$diemtrungbinhkiemtra  = $this->get_sum_mark($mon_id, $lop_id, $result);
			$diemhetmon  = $this->get_end_mark($mon_id, $lop_id, $result);
			$endmark = $diemhetmon->diemso;
			$sumkiemtra = $diemtrungbinhkiemtra->diemso;
			
			
			$data_sotinchi = $this->get_sotinchi_monhoc($mon_id);
			
			$sotinchi = $data_sotinchi->sotinchi;
			$solanktra = round($sotinchi/15);
			//echo $sumkiemtra.'-'.$endmark.'-'.$solanktra; 
			$dtb= round(((2*$sumkiemtra) + (3*$endmark))/((2*$solanktra)+3),1);
			//echo $dtb;
			//exit();
			$data2 = array(
				'diemtrungbinh' => $dtb,
			);
			
			$this->db->where('id',$bangdiemid);
			$this->db->set($data2);
			$this->db->update('bangdiem');
		}
	}
	
	function get_sum_mark($mon_id, $lop_id, $idhv)
	{
		$this->db->select_sum('chitietdiem.diemso');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_hv',$idhv);
		$this->db->where('chitietdiem.type',1);
		$query = $this->db->get();
		return $query->row();
	}
	
	function get_end_mark($mon_id, $lop_id, $idhv)
	{
		$this->db->select_sum('chitietdiem.diemso');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_hv',$idhv);
		$this->db->where('chitietdiem.type',2);
		$query = $this->db->get();
		return $query->row();
	}
	
	// thêm vào bảng điểm
	function add_bangdiem($idmon, $idhv, $idlop)
	{
		//Kiểm tra nếu đã tồn tại thì lấy luôn bảng điểm ID
		//nếu chưa có thì insert vào bảng điểm và trả về idbangdiem vừa được thêm vào
		$key = $this->check_mon_lop_from_bangdiem($idmon, $idlop,$idhv);
		if($key !=0)
		{
			return $key;
		}
		
		else 
		{
			$data = array(
					'id_mon' => $idmon,
					'id_hv' => $idhv,
					'id_lop'	=>	$idlop,
			);
			$this->db->set($data);
			$this->db->insert('bangdiem');
			return $this->db->insert_id();
		}
		
	}
	
	public function get_student_by_class($idlop)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.ngaysinh');
		$this->db->from('hocvien','hocvien_lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->where('hocvien_lophoc.idlop',$idlop);
		$query = $this->db->get();
		return $query->result_array();
		
	}
	
	public function get_subject_by_class($idlop) 
	{
		$this->db->select('monhoc.id, monhoc.mamon, monhoc.tenmon, monhoc.sotinchi, lophoc_monhoc.id_lop');
		$this->db->from('monhoc','lophoc_monhoc');
		$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = monhoc.id');
		$this->db->where('lophoc_monhoc.id_lop',$idlop);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	public function count_all_subject_by_class($idlop)
	{
		$this->db->select('monhoc.id ');
		$this->db->from('monhoc','lophoc_monhoc');
		$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = monhoc.id');
		$this->db->where('lophoc_monhoc.id_lop',$idlop);
		return $this->db->count_all_results();
	}
	
	/* function ajaxget_loaidiem($id_mon)
	{
		$data_sotinchi = $this->get_sotinchi_monhoc($id_mon);
		$sotinchi = $data_sotinchi->sotinchi;
		$solankiemtra = round($sotinchi/15);// số lần kiểm tra tương ứng 1->9 lần, 15 chỉ 1 lần
		$this->db->select('*');
		$this->db->from('bangloaidiem');
		$this->db->order_by('id','asc');
		//$this->db->where('bangloaidiem.id_mon',$id_mon);
		$this->db->where('type',1);
		$this->db->limit($solankiemtra);
		$query = $this->db->get();
		$rs1 = $query->result();
	
		$this->db->select('*');
		$this->db->from('bangloaidiem');
		$this->db->order_by('id','asc');
		$this->db->where_not_in('type',1);
		$query = $this->db->get();
		$rs2 = $query->result_array();
		//return $query->result_array();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn ...";
			foreach ($rs1 as $city) {
				$lophocs[$city->id] = $city->tenloaidiem;
			}
				
			foreach ($rs2 as $city) {
				$lophocs[$city['id']] = $city['tenloaidiem'];
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	} */
	
	/*
	 * Lấy tất cả các lớp theo năm
	*/
	function ajaxget_lop_byYear($year)
	{
		$this->db->select('id, malop, tenlop');
		$this->db->from('lophoc');
		$this->db->order_by('id','desc');
		$this->db->where('YEAR(lophoc.nambatdau)',$year);
		$this->db->where('deleted',0);
		$this->db->where('status',1);
		$query = $this->db->get();
		//return $query->result_array();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn lớp học...";
			foreach ($query->result() as $city) {
				$lophocs[$city->id] = $city->tenlop;
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	}
	
	// Lấy các môn học được biên chế theo từng lớp
	function ajaxget_monhoc_bylop($id_lop)
	{
		$this->db->select('lophoc_monhoc.*, monhoc.mamon, monhoc.tenmon, monhoc.lythuyet, monhoc.thuchanh, monhoc.sotinchi');
		$this->db->from('lophoc_monhoc','monhoc');
		$this->db->join('monhoc','monhoc.id = lophoc_monhoc.id_mon');
		$this->db->where('monhoc.deleted',0);
		$this->db->where('monhoc.status',1);
		$this->db->where('lophoc_monhoc.id_lop',$id_lop);
		$query = $this->db->get();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn môn học ...";
			foreach ($query->result() as $city) {
				$lophocs[$city->id_mon] = $city->tenmon;
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	
	}
	
	// Lấy danh sách các sinh viên trong 1 lớp
	public function ajaxget_hocvien($id)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.ngaysinh, hocvien.cmnd, hocvien_lophoc.idhv');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc','lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien_lophoc.idlop',$id);
		
		$query = $this->db->get();
		$lophocs = array();
		if($query->result()){
			
			foreach ($query->result() as $hocvien) {
				$item['mahv'] = $hocvien->mahv;
				$item['tenhv'] = $hocvien->tenhv;
				$item['cmnd'] = $hocvien->cmnd;
				$item['idhv'] = $hocvien->idhv;
				$item['ngaysinh'] = date('d/m/Y', strtotime($hocvien->ngaysinh));
				$lophocs[$item['idhv']] = $item;
			}
			//var_dump($lophocs);
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	}
	
	function get_all_class() {
		$this->db->select('*');
		$this->db->from('lophoc');
		$query = $this->db->get();
		return $query->result_array();
	}
	
	//lấy số tín chỉ của 1 môn
	function get_sotinchi_monhoc($idmon)
	{
		$this->db->select('sotinchi');
		$this->db->from('monhoc');
		$this->db->where('id',$idmon);
		$query = $this->db->get();
		return $query->row();
	}
}

/* Location: ./application/models/bangdiem_model.php */